Voice over IP (or voice over Internet Protocol “VoIP”) is a methodology and group of technologies for the delivery of voice communications and multimedia sessions over Internet Protocol (IP) networks, such as the Internet. VoIP is available on many smartphones, personal computers, and on Internet-accessible devices. For example, a smartphone user may make calls and SMS text messages through VoIP over a 3G or Wi-Fi network.
VoIP technologies enable media streaming over IP networks using special media delivery protocols that encode voice, audio, video, etc. as sequential packets of data. Typically, the media content is split into multiple packets of media data that are sent from an originating device to a receiving device. Each media packet includes a sequence number that is used when determining the order of playout on the receiving device.
The receiving device may receive the media packets individually or in a burst (i.e., several packets sent as a group), the latter usually occurring when there is a network delay/backlog in packet delivery. The receiving device stores media packets in a buffer of a fixed size for play out in sequential order. After finishing playing a media packet, the receiving device removes the media packet from the buffer to make room for other media packets. Occasionally, given the limited space in the buffer, the receiver device will discard or reject new media packets that are received when the playout buffer is full or when the receiver device does not have the resources to process the media packets because other tasks have a higher priority (which is sometimes referred to as “task preemption”). This may especially be the case when the media packets arrive in a burst, which increases the likelihood that the buffer cannot hold every media packet in the burst or that the receiver device can process every packet in the burst.